home *** CD-ROM | disk | FTP | other *** search
- 'NOISE.BAS
- 'This program calculates the median man-made noise level for
- 'three noise grade environments: Business, Suburban, and Rural.
- 'The values are based on the formulas contained in Report 258-4
- 'Man-Made Radio Noise issued by the CCIR, Geneva 1982 as part of
- 'Volume VI Propagation in Ionized Media.
- 'Also calculated are the upper and lower decile levels of
- 'noise power variability within a one hour period.
- 'The upper decile level is not exceeded 90% of the time. The lower
- 'decile level is exceeded 90% of the time.
- '
- 'The standard deviation of location variability is also given.
- '
- 'An upper and lower decile value including both time
- 'and location variability is calculated. For simplicity,
- 'a simple Gaussian distribution is assumed for the location
- 'variability.
- '
- 'Program last revised June 27, 1990
- '
- GOSUB TITLE
-
- DEF FNLGT (X) = LOG(X) / LOG(10)
-
- MENU:
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ MAN-MADE NOISE - MODULE 11 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
-
-
-
- PRINT
- PRINT
-
- FREQENTRY:
- INPUT "ENTER FREQUENCY (MHz): "; FREQ
- PRINT
- IF FREQ < 20 OR FREQ > 102 THEN PRINT "FREQUENCY MUST BE BETWEEN 20 AND 102 MHz ": GOTO FREQENTRY
-
- PRINT " NOISE GRADE"
- PRINT "--------------------"
- PRINT "1) BUSINESS AREA"
- PRINT "2) RESIDENTIAL AREA"
- PRINT "3) RURAL AREA"
- INPUT " ENTER CHOICE 1,2 OR 3: "; GRADE%
-
- BW = 1: 'initialize bandwidth to 1 Hz.
- GOSUB BANDWIDTH
-
- 'choose noise calculation routine based on noise grade
- GRADE:
-
- SELECT CASE GRADE%
-
- CASE 1
- GRADE$ = "BUSINESS"
- GOSUB BUSINESS
- CASE 2
- GRADE$ = "RESIDENTIAL"
- GOSUB RESIDENTIAL
- CASE 3
- GRADE$ = "RURAL"
- GOSUB RURAL
- CASE ELSE
- GOTO MENU
-
- END SELECT
-
-
-
- OUTPUT1:
-
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ NOISE - MAN-MADE NOISE LEVEL PREDICTION - MODULE 11 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
- LOCATE 4, 10
- PRINT USING "NOISE GRADE: & "; GRADE$
- LOCATE 5, 10
- PRINT USING "FREQUENCY: ###.# MHz"; FREQ
- LOCATE 7, 10
- PRINT USING "MEDIAN MAN-MADE NOISE LEVEL: +###.# dBm"; MEDIAN
- LOCATE 8, 10
- PRINT USING " (in a & bandwidth)"; BW$
- LOCATE 10, 10
- PRINT USING "UPPER DECILE NOISE LEVEL: +###.# dBm"; UPPERTIME
- LOCATE 11, 10
- PRINT "(for time variation of noise)"
- LOCATE 13, 10
- PRINT USING "LOWER DECILE NOISE LEVEL: +###.# dBm"; LOWERTIME
- LOCATE 15, 10
- PRINT USING "LOCATION VARIABILITY SIGMA: ##.# dB"; SIGMA
- LOCATE 17, 10
- PRINT USING "UPPER DECILE NOISE LEVEL: +###.# dBm"; UPPER
- LOCATE 18, 10
- PRINT "(including time and location"
- LOCATE 19, 10
- PRINT " variability)"
- LOCATE 21, 10
- PRINT USING "LOWER DECILE NOISE LEVEL: +###.# dBm"; LOWER
- LOCATE 23, 10
- INPUT "CALCULATE FOR ANOTHER BANDWIDTH (Y/N)? "; ANSWER$
- IF LEFT$(ANSWER$, 1) = "Y" OR LEFT$(ANSWER$, 1) = "y" THEN GOTO INPUTBW
- LOCATE 24, 10
- INPUT "NEW CALCULATION (Y/N)? "; ANSWER$
- IF LEFT$(ANSWER$, 1) = "Y" OR LEFT$(ANSWER$, 1) = "y" THEN GOTO MENU
-
- ENDING:
- LOCATE 25, 30
- PRINT "≡≡≡ PROGRAM COMPLETED ≡≡≡"
- END
-
-
-
- BUSINESS:
-
- MEDIAN = -97.2 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
- SELECT CASE FREQ
- CASE IS >= 20, IS <= 48
- DU = 10.5 + .093 * (FREQ - 20)
- DL = 7.6 + .0179 * (FREQ - 20)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 4.93 + .079 * (FREQ - 20)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE IS > 48, IS <= 102
- DU = 13.1 - .022 * (FREQ - 48)
- DL = 8.1 - .44 * (FREQ - 48)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 7.13 + .03 * (FREQ - 48)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE ELSE
- 'incorrect frequencies should have already been trapped
- END SELECT
- RETURN
-
- RESIDENTIAL:
-
- MEDIAN = -101.5 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
- SELECT CASE FREQ
- CASE IS >= 20, IS <= 48
- DU = 10.6 + .061 * (FREQ - 20)
- DL = 6.5 + .021 * (FREQ - 20)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 4.65 - .024 * (FREQ - 20)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE IS > 48, IS <= 102
- DU = 12.3 - .0037 * (FREQ - 48)
- DL = 7.1 - .042 * (FREQ - 48)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 3.98 - .023 * (FREQ - 48)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE ELSE
- 'incorrect frequencies should have already been trapped
- END SELECT
- RETURN
-
-
- RURAL:
-
- MEDIAN = -106.8 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
- SELECT CASE FREQ
- CASE IS >= 20, IS <= 48
- DU = 7.8 + .089 * (FREQ - 20)
- DL = 5.5 - .132 * (FREQ - 20)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 4.53 - .046 * (FREQ - 20)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE IS > 48, IS <= 102
- DU = 5.3 + .096 * (FREQ - 48)
- DL = 1.8 + .024 * (FREQ - 48)
- UPPERTIME = MEDIAN + DU
- LOWERTIME = MEDIAN - DL
- SIGMA = 3.23 - .0109 * (FREQ - 48)
- SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
- SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
- UPPER = MEDIAN + 1.64 * SIGMATOTAL
- LOWER = MEDIAN - 1.64 * SIGMATOTAL
- CASE ELSE
- 'incorrect frequencies should have already been trapped
- END SELECT
- RETURN
-
- INPUTBW:
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ NOISE - MAN-MADE NOISE LEVEL PREDICTION - MODULE 11 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
-
- LOCATE 10, 10
- INPUT "ENTER NEW BANDWIDTH IN HERTZ: "; BW
- GOSUB BANDWIDTH
- GOTO GRADE
-
- BANDWIDTH:
- SELECT CASE BW
- CASE IS < 1000
- BW$ = LTRIM$(STR$(BW)) + " Hz"
- CASE IS >= 1000, IS < 100000
- BW$ = LTRIM$(STR$(BW / 1000)) + " kHz"
- CASE ELSE
- PRINT "WARNING: BANDWIDTH OUT-OF-RANGE"
- 'return to BW entry
- END SELECT
- RETURN
-
- TITLE:
- 'opening screen for meteor burst programs
- CLS
-
- LOCATE 5, 25
- PRINT "Supplemental Computer Programs"
- LOCATE 6, 38
- PRINT "to"
- LOCATE 7, 27
- PRINT "METEOR BURST COMMUNICATION"
- LOCATE 9, 38
- PRINT "by"
- LOCATE 10, 31
- PRINT "Jacob Z. Schanker"
- LOCATE 14, 24
- PRINT "COPYRIGHT 1990 ARTECH HOUSE, INC."
- LOCATE 22, 25
- PRINT "<< Press any key to continue >>"
- WHILE INKEY$ = ""
- WEND
- CLS
- RETURN
-
-